<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='../vue.js'></script>
</head>
<body>
    <div id='app'>
        {{count}}
        <button @click="count++">修改</button>
        <br>
        姓:<input type="text" v-model="firstName"><br>
        名:<input type="text" v-model="lastName"><br>
        全名:{{FullName}}
        {{sayHello}}
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el:'#app',
            data(){
                return {
                count:0,
                firstName:'',
                lastName:''
            }
            },
            computed:{
                /* 
                当模板需要一个数据,是由其他的数据计算得来的,那么我们可以书写一个书写来得到这个数据(如果逻辑简单,则可以直接把逻辑写在插值中)

                Vue中computed配置中的属性称为计算属性.计算属性监视内部使用的其他属性的变化,一旦发生变化,计算属性就要重新计算

                计算属性:
                    -监视一个或多个属性的变化
                    -目的是得到一个值!!!!

                计算属性的优势:
                    只有在监视的属性发生变化的时候,计算属性才会重新计算,否则每次使用这个属性的时候,直接读取的是上一次计算的缓存结果
                */
                FullName(){
                    console.log('计算属性,重新计算了');
                    return this.firstName.toUpperCase()+'-'+this.lastName.toUpperCase()
                },
                sayHello(){
                    return this.FullName+':hello'
                }
            }
    })
    </script>
</body>
</html>